4.1.3 判断素数

质数概念:质数是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。2是唯一一个既是偶数又是质数的数字

1.判断一个数是不是素数

 function isPrinme(n) {
    if(n == 0 || n==1){
        return false;
    }
    if(n==2){
        return true;
    }
    for(var i=2;i<Math.sqrt(n);i++){
        if(n%i == 0){
            return false;
        }
    }
    return true;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

2.输出n内的所有素数


function get_primes(n){
  var x,arr=[];
  for(x=1;x<=n;x++){
      arr.push(x);
  }
    return arr.filter(function(num){
        if (num === 1) {
            return false;
        }
        for(var i=2;i<=Math.sqrt(num);i++){
            if (num%i === 0){
                return false;
            }
        }
        return true;
    });
}
get_primes(100)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  • 另一种写法
function prinmeN(n) {
        var flag=0;
        var result=[];
        if(n == 0 || n==1){
            result=[];
        }else if(n==2){
            result=[2];
        } else if (n==3 || n==4){
            result=[2,3]
        }else{
            result.push(2,3);
            for(var i=5;i<=n;i++){
                for(var j=2;j<=Math.sqrt(i);j++){
                    if(i%j == 0){
                        flag=1;
                        break;
                    }else{
                        flag=0;
                    }
                }
                if(flag==0){
                    result.push(i);
                }
            }

        }
        return result;
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

参考